window.BMAP_AUTHENTIC_KEY = "";
(function() {
	var b1, a7 = b1 = a7 || {
		version: "1.3.4"
	};
	a7.guid = "$BAIDU$";
	window[a7.guid] = window[a7.guid] || {};
	a7.object = a7.object || {};
	a7.extend = a7.object.extend = function(cL, T) {
		for(var cK in T) {
			if(T.hasOwnProperty(cK)) {
				cL[cK] = T[cK]
			}
		}
		return cL
	};
	a7.dom = a7.dom || {};
	a7.dom.g = function(T) {
		if("string" == typeof T || T instanceof String) {
			return document.getElementById(T)
		} else {
			if(T && T.nodeName && (T.nodeType == 1 || T.nodeType == 9)) {
				return T
			}
		}
		return null
	};
	a7.g = a7.G = a7.dom.g;
	a7.dom.hide = function(T) {
		T = a7.dom.g(T);
		T.style.display = "none";
		return T
	};
	a7.hide = a7.dom.hide;
	a7.lang = a7.lang || {};
	a7.lang.isString = function(T) {
		return "[object String]" == Object.prototype.toString.call(T)
	};
	a7.isString = a7.lang.isString;
	a7.dom._g = function(T) {
		if(a7.lang.isString(T)) {
			return document.getElementById(T)
		}
		return T
	};
	a7._g = a7.dom._g;
	a7.dom.contains = function(T, cK) {
		var cL = a7.dom._g;
		T = cL(T);
		cK = cL(cK);
		return T.contains ? T != cK && T.contains(cK) : !! (T.compareDocumentPosition(cK) & 16)
	};
	a7.browser = a7.browser || {};
	if(/msie (\d+\.\d)/i.test(navigator.userAgent)) {
		a7.browser.ie = a7.ie = document.documentMode || +RegExp["$1"]
	}
	a7.dom._NAME_ATTRS = (function() {
		var T = {
			cellpadding: "cellPadding",
			cellspacing: "cellSpacing",
			colspan: "colSpan",
			rowspan: "rowSpan",
			valign: "vAlign",
			usemap: "useMap",
			frameborder: "frameBorder"
		};
		if(a7.browser.ie < 8) {
			T["for"] = "htmlFor";
			T["class"] = "className"
		} else {
			T.htmlFor = "for";
			T.className = "class"
		}
		return T
	})();
	a7.dom.setAttr = function(cK, T, cL) {
		cK = a7.dom.g(cK);
		if("style" == T) {
			cK.style.cssText = cL
		} else {
			T = a7.dom._NAME_ATTRS[T] || T;
			cK.setAttribute(T, cL)
		}
		return cK
	};
	a7.setAttr = a7.dom.setAttr;
	a7.dom.setAttrs = function(cL, T) {
		cL = a7.dom.g(cL);
		for(var cK in T) {
			a7.dom.setAttr(cL, cK, T[cK])
		}
		return cL
	};
	a7.setAttrs = a7.dom.setAttrs;
	a7.string = a7.string || {};
	(function() {
		var T = new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)", "g");
		a7.string.trim = function(cK) {
			return String(cK).replace(T, "")
		}
	})();
	a7.trim = a7.string.trim;
	a7.string.format = function(cL, T) {
		cL = String(cL);
		var cK = Array.prototype.slice.call(arguments, 1),
			cM = Object.prototype.toString;
		if(cK.length) {
			cK = cK.length == 1 ? (T !== null && (/\[object Array\]|\[object Object\]/.test(cM.call(T))) ? T : cK) : cK;
			return cL.replace(/#\{(.+?)\}/g, function(cN, cP) {
				var cO = cK[cP];
				if("[object Function]" == cM.call(cO)) {
					cO = cO(cP)
				}
				return("undefined" == typeof cO ? "" : cO)
			})
		}
		return cL
	};
	a7.format = a7.string.format;
	a7.dom.removeClass = function(cO, cP) {
		cO = a7.dom.g(cO);
		var cM = cO.className.split(/\s+/),
			cQ = cP.split(/\s+/),
			cK, T = cQ.length,
			cL, cN = 0;
		for(; cN < T; ++cN) {
			for(cL = 0, cK = cM.length; cL < cK; ++cL) {
				if(cM[cL] == cQ[cN]) {
					cM.splice(cL, 1);
					break
				}
			}
		}
		cO.className = cM.join(" ");
		return cO
	};
	a7.removeClass = a7.dom.removeClass;
	a7.dom.insertHTML = function(cM, T, cL) {
		cM = a7.dom.g(cM);
		var cK, cN;
		if(cM.insertAdjacentHTML) {
			cM.insertAdjacentHTML(T, cL)
		} else {
			cK = cM.ownerDocument.createRange();
			T = T.toUpperCase();
			if(T == "AFTERBEGIN" || T == "BEFOREEND") {
				cK.selectNodeContents(cM);
				cK.collapse(T == "AFTERBEGIN")
			} else {
				cN = T == "BEFOREBEGIN";
				cK[cN ? "setStartBefore" : "setEndAfter"](cM);
				cK.collapse(cN)
			}
			cK.insertNode(cK.createContextualFragment(cL))
		}
		return cM
	};
	a7.insertHTML = a7.dom.insertHTML;
	a7.dom.show = function(T) {
		T = a7.dom.g(T);
		T.style.display = "";
		return T
	};
	a7.show = a7.dom.show;
	a7.dom.getDocument = function(T) {
		T = a7.dom.g(T);
		return T.nodeType == 9 ? T : T.ownerDocument || T.document
	};
	a7.dom.addClass = function(cO, cP) {
		cO = a7.dom.g(cO);
		var cK = cP.split(/\s+/),
			T = cO.className,
			cN = " " + T + " ",
			cM = 0,
			cL = cK.length;
		for(; cM < cL; cM++) {
			if(cN.indexOf(" " + cK[cM] + " ") < 0) {
				T += " " + cK[cM]
			}
		}
		cO.className = T;
		return cO
	};
	a7.addClass = a7.dom.addClass;
	a7.dom._styleFixer = a7.dom._styleFixer || {};
	a7.dom._styleFilter = a7.dom._styleFilter || [];
	a7.dom._styleFilter.filter = function(cK, cN, cO) {
		for(var T = 0, cM = a7.dom._styleFilter, cL; cL = cM[T]; T++) {
			if(cL = cL[cO]) {
				cN = cL(cK, cN)
			}
		}
		return cN
	};
	a7.string.toCamelCase = function(T) {
		if(T.indexOf("-") < 0 && T.indexOf("_") < 0) {
			return T
		}
		return T.replace(/[-_][^-_]/g, function(cK) {
			return cK.charAt(1).toUpperCase()
		})
	};
	a7.dom.getStyle = function(cL, cK) {
		var cO = a7.dom;
		cL = cO.g(cL);
		cK = a7.string.toCamelCase(cK);
		var cN = cL.style[cK];
		if(!cN) {
			var T = cO._styleFixer[cK],
				cM = cL.currentStyle || (a7.browser.ie ? cL.style : getComputedStyle(cL, null));
			cN = T && T.get ? T.get(cL, cM) : cM[T || cK]
		}
		if(T = cO._styleFilter) {
			cN = T.filter(cK, cN, "get")
		}
		return cN
	};
	a7.getStyle = a7.dom.getStyle;
	if(/opera\/(\d+\.\d)/i.test(navigator.userAgent)) {
		a7.browser.opera = +RegExp["$1"]
	}
	a7.browser.isWebkit = /webkit/i.test(navigator.userAgent);
	a7.browser.isGecko = /gecko/i.test(navigator.userAgent) && !/like gecko/i.test(navigator.userAgent);
	a7.browser.isStrict = document.compatMode == "CSS1Compat";
	a7.dom.getPosition = function(T) {
		T = a7.dom.g(T);
		var cS = a7.dom.getDocument(T),
			cM = a7.browser,
			cP = a7.dom.getStyle,
			cL = cM.isGecko > 0 && cS.getBoxObjectFor && cP(T, "position") == "absolute" && (T.style.top === "" || T.style.left === ""),
			cQ = {
				left: 0,
				top: 0
			},
			cO = (cM.ie && !cM.isStrict) ? cS.body : cS.documentElement,
			cT, cK;
		if(T == cO) {
			return cQ
		}
		if(T.getBoundingClientRect) {
			cK = T.getBoundingClientRect();
			cQ.left = Math.floor(cK.left) + Math.max(cS.documentElement.scrollLeft, cS.body.scrollLeft);
			cQ.top = Math.floor(cK.top) + Math.max(cS.documentElement.scrollTop, cS.body.scrollTop);
			cQ.left -= cS.documentElement.clientLeft;
			cQ.top -= cS.documentElement.clientTop;
			var cR = cS.body,
				cU = parseInt(cP(cR, "borderLeftWidth")),
				cN = parseInt(cP(cR, "borderTopWidth"));
			if(cM.ie && !cM.isStrict) {
				cQ.left -= isNaN(cU) ? 2 : cU;
				cQ.top -= isNaN(cN) ? 2 : cN
			}
		} else {
			cT = T;
			do {
				cQ.left += cT.offsetLeft;
				cQ.top += cT.offsetTop;
				if(cM.isWebkit > 0 && cP(cT, "position") == "fixed") {
					cQ.left += cS.body.scrollLeft;
					cQ.top += cS.body.scrollTop;
					break
				}
				cT = cT.offsetParent
			} while (cT && cT != T);
			if(cM.opera > 0 || (cM.isWebkit > 0 && cP(T, "position") == "absolute")) {
				cQ.top -= cS.body.offsetTop
			}
			cT = T.offsetParent;
			while(cT && cT != cS.body) {
				cQ.left -= cT.scrollLeft;
				if(!cM.opera || cT.tagName != "TR") {
					cQ.top -= cT.scrollTop
				}
				cT = cT.offsetParent
			}
		}
		return cQ
	};
	if(/firefox\/(\d+\.\d)/i.test(navigator.userAgent)) {
		a7.browser.firefox = +RegExp["$1"]
	}(function() {
		var T = navigator.userAgent;
		if(/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(T) && !/chrome/i.test(T)) {
			a7.browser.safari = +(RegExp["$1"] || RegExp["$2"])
		}
	})();
	if(/chrome\/(\d+\.\d)/i.test(navigator.userAgent)) {
		a7.browser.chrome = +RegExp["$1"]
	}
	a7.array = a7.array || {};
	a7.array.each = function(cO, cM) {
		var cL, cN, cK, T = cO.length;
		if("function" == typeof cM) {
			for(cK = 0; cK < T; cK++) {
				cN = cO[cK];
				cL = cM.call(cO, cN, cK);
				if(cL === false) {
					break
				}
			}
		}
		return cO
	};
	a7.each = a7.array.each;
	a7.lang.guid = function() {
		return "TANGRAM__" + (window[a7.guid]._counter++).toString(36)
	};
	window[a7.guid]._counter = window[a7.guid]._counter || 1;
	window[a7.guid]._instances = window[a7.guid]._instances || {};
	a7.lang.isFunction = function(T) {
		return "[object Function]" == Object.prototype.toString.call(T)
	};
	a7.lang.Class = function(T) {
		this.guid = T || a7.lang.guid();
		window[a7.guid]._instances[this.guid] = this
	};
	window[a7.guid]._instances = window[a7.guid]._instances || {};
	a7.lang.Class.prototype.dispose = function() {
		delete window[a7.guid]._instances[this.guid];
		for(var T in this) {
			if(!a7.lang.isFunction(this[T])) {
				delete this[T]
			}
		}
		this.disposed = true
	};
	a7.lang.Class.prototype.toString = function() {
		return "[object " + (this._className || "Object") + "]"
	};
	a7.lang.Event = function(T, cK) {
		this.type = T;
		this.returnValue = true;
		this.target = cK || null;
		this.currentTarget = null
	};
	a7.lang.Class.prototype.addEventListener = function(cM, cL, cK) {
		if(!a7.lang.isFunction(cL)) {
			return
		}!this.__listeners && (this.__listeners = {});
		var T = this.__listeners,
			cN;
		if(typeof cK == "string" && cK) {
			if(/[^\w\-]/.test(cK)) {
				throw("nonstandard key:" + cK)
			} else {
				cL.hashCode = cK;
				cN = cK
			}
		}
		cM.indexOf("on") != 0 && (cM = "on" + cM);
		typeof T[cM] != "object" && (T[cM] = {});
		cN = cN || a7.lang.guid();
		cL.hashCode = cN;
		T[cM][cN] = cL
	};
	a7.lang.Class.prototype.removeEventListener = function(cL, cK) {
		if(a7.lang.isFunction(cK)) {
			cK = cK.hashCode
		} else {
			if(!a7.lang.isString(cK)) {
				return
			}
		}!this.__listeners && (this.__listeners = {});
		cL.indexOf("on") != 0 && (cL = "on" + cL);
		var T = this.__listeners;
		if(!T[cL]) {
			return
		}
		T[cL][cK] && delete T[cL][cK]
	};
	a7.lang.Class.prototype.dispatchEvent = function(cM, T) {
		if(a7.lang.isString(cM)) {
			cM = new a7.lang.Event(cM)
		}!this.__listeners && (this.__listeners = {});
		T = T || {};
		for(var cL in T) {
			cM[cL] = T[cL]
		}
		var cL, cK = this.__listeners,
			cN = cM.type;
		cM.target = cM.target || this;
		cM.currentTarget = this;
		cN.indexOf("on") != 0 && (cN = "on" + cN);
		a7.lang.isFunction(this[cN]) && this[cN].apply(this, arguments);
		if(typeof cK[cN] == "object") {
			for(cL in cK[cN]) {
				cK[cN][cL].apply(this, arguments)
			}
		}
		return cM.returnValue
	};
	a7.lang.inherits = function(cP, cN, cM) {
		var cL, cO, T = cP.prototype,
			cK = new Function();
		cK.prototype = cN.prototype;
		cO = cP.prototype = new cK();
		for(cL in T) {
			cO[cL] = T[cL]
		}
		cP.prototype.constructor = cP;
		cP.superClass = cN.prototype;
		if("string" == typeof cM) {
			cO._className = cM
		}
	};
	a7.inherits = a7.lang.inherits;
	a7.lang.instance = function(T) {
		return window[a7.guid]._instances[T] || null
	};
	a7.platform = a7.platform || {};
	a7.platform.isMacintosh = /macintosh/i.test(navigator.userAgent);
	a7.platform.isWindows = /windows/i.test(navigator.userAgent);
	a7.platform.isX11 = /x11/i.test(navigator.userAgent);
	a7.platform.isAndroid = /android/i.test(navigator.userAgent);
	a7.platform.isIpad = /ipad/i.test(navigator.userAgent);
	a7.platform.isIphone = /iphone/i.test(navigator.userAgent);
	a7.lang.Event.prototype.inherit = function(cL) {
		var cK = this;
		this.domEvent = cL = window.event || cL;
		cK.clientX = cL.clientX || cL.pageX;
		cK.clientY = cL.clientY || cL.pageY;
		cK.offsetX = cL.offsetX || cL.layerX;
		cK.offsetY = cL.offsetY || cL.layerY;
		cK.screenX = cL.screenX;
		cK.screenY = cL.screenY;
		cK.ctrlKey = cL.ctrlKey || cL.metaKey;
		cK.shiftKey = cL.shiftKey;
		cK.altKey = cL.altKey;
		if(cL.touches) {
			cK.touches = [];
			for(var T = 0; T < cL.touches.length; T++) {
				cK.touches.push({
					clientX: cL.touches[T].clientX,
					clientY: cL.touches[T].clientY,
					screenX: cL.touches[T].screenX,
					screenY: cL.touches[T].screenY,
					pageX: cL.touches[T].pageX,
					pageY: cL.touches[T].pageY,
					target: cL.touches[T].target,
					identifier: cL.touches[T].identifier
				})
			}
		}
		if(cL.changedTouches) {
			cK.changedTouches = [];
			for(var T = 0; T < cL.changedTouches.length; T++) {
				cK.changedTouches.push({
					clientX: cL.changedTouches[T].clientX,
					clientY: cL.changedTouches[T].clientY,
					screenX: cL.changedTouches[T].screenX,
					screenY: cL.changedTouches[T].screenY,
					pageX: cL.changedTouches[T].pageX,
					pageY: cL.changedTouches[T].pageY,
					target: cL.changedTouches[T].target,
					identifier: cL.changedTouches[T].identifier
				})
			}
		}
		if(cL.targetTouches) {
			cK.targetTouches = [];
			for(var T = 0; T < cL.targetTouches.length; T++) {
				cK.targetTouches.push({
					clientX: cL.targetTouches[T].clientX,
					clientY: cL.targetTouches[T].clientY,
					screenX: cL.targetTouches[T].screenX,
					screenY: cL.targetTouches[T].screenY,
					pageX: cL.targetTouches[T].pageX,
					pageY: cL.targetTouches[T].pageY,
					target: cL.targetTouches[T].target,
					identifier: cL.targetTouches[T].identifier
				})
			}
		}
		cK.rotation = cL.rotation;
		cK.scale = cL.scale;
		return cK
	};
	a7.lang.decontrol = function(cK) {
		var T = window[a7.guid];
		T._instances && (delete T._instances[cK])
	};
	a7.event = {};
	a7.on = a7.event.on = function(cL, cK, T) {
		if(!(cL = a7.g(cL))) {
			return cL
		}
		cK = cK.replace(/^on/, "");
		if(cL.addEventListener) {
			cL.addEventListener(cK, T, false)
		} else {
			if(cL.attachEvent) {
				cL.attachEvent("on" + cK, T)
			}
		}
		return cL
	};
	a7.un = a7.event.un = function(cL, cK, T) {
		if(!(cL = a7.g(cL))) {
			return cL
		}
		cK = cK.replace(/^on/, "");
		if(cL.removeEventListener) {
			cL.removeEventListener(cK, T, false)
		} else {
			if(cL.detachEvent) {
				cL.detachEvent("on" + cK, T)
			}
		}
		return cL
	};
	a7.dom.hasClass = function(cL, cK) {
		if(!cL || !cL.className || typeof cL.className != "string") {
			return false
		}
		var T = -1;
		try {
			T = cL.className == cK || cL.className.search(new RegExp("(\\s|^)" + cK + "(\\s|$)"))
		} catch(cM) {
			return false
		}
		return T > -1
	};
	window.BMap = window.BMap || {};
	window.BMap.version = "1.3";
	window.BMap._register = [];
	window.BMap.register = function(T) {
		this._register.push(T)
	};
	window.BMap.apiLoad = window.BMap.apiLoad ||
	function() {};
	var bI = window.BMAP_AUTHENTIC_KEY;
	window.BMAP_AUTHENTIC_KEY = null;

	function by(cM, cO) {
		cM = a7.g(cM);
		if(!cM) {
			return
		}
		var cN = this;
		a7.lang.Class.call(cN);
		cN.config = {
			clickInterval: 200,
			enableDragging: true,
			enableKeyboard: false,
			enableDblclickZoom: true,
			enableContinuousZoom: false,
			enableWheelZoom: false,
			enableMouseDown: true,
			enablePinchToZoom: true,
			enableAutoResize: true,
			fps: 25,
			zoomerDuration: 240,
			actionDuration: 450,
			defaultCursor: cb.defaultCursor,
			draggingCursor: cb.draggingCursor,
			isOverviewMap: false,
			minZoom: 1,
			maxZoom: 18,
			mapType: BMAP_NORMAL_MAP,
			restrictBounds: false,
			drawer: BMAP_SYS_DRAWER,
			enableInertialDragging: false,
			drawMargin: 500,
			enableHighResolution: false
		};
		a7.extend(cN.config, cO || {});
		if(cN.highResolutionEnabled()) {
			var cQ = document.querySelector("meta[name=viewport]");
			cQ.content = "initial-scale=0.5, minimum-scale=0.5, maximum-scale=0.5, user-scalable=no, target-densitydpi=high-dpi"
		}
		cN.container = cM;
		cN._setStyle(cM);
		cM.unselectable = "on";
		cM.innerHTML = "";
		cM.appendChild(cN.render());
		var cK = cN.getSize();
		cN.width = cK.width;
		cN.height = cK.height;
		cN.offsetX = 0;
		cN.offsetY = 0;
		cN.platform = cM.firstChild;
		cN.maskLayer = cN.platform.firstChild;
		cN.maskLayer.style.width = cN.width + "px";
		cN.maskLayer.style.height = cN.height + "px";
		cN._panes = {};
		cN.centerPoint = new cc(0, 0);
		cN.mercatorCenter = new cc(0, 0);
		cN.zoomLevel = 1;
		cN.lastLevel = 0;
		cN.defaultZoomLevel = null;
		cN.defaultCenter = null;
		cN.currentCity = "";
		cN.cityCode = "";
		cN._hotspots = {};
		cN.currentOperation = 0;
		cO = cO || {};
		var cP = cN.mapType = cN.config.mapType;
		cN.projection = cP.getProjection();
		if(cP === BMAP_PERSPECTIVE_MAP) {
			_addStat(5002)
		}
		if(cP === BMAP_SATELLITE_MAP || cP === BMAP_HYBRID_MAP) {
			_addStat(5003)
		}
		var T = cN.config;
		T.userMinZoom = cO.minZoom;
		T.userMaxZoom = cO.maxZoom;
		cN._checkZoom();
		cN.temp = {
			operating: false,
			arrow: 0,
			lastDomMoveTime: 0,
			lastLoadTileTime: 0,
			lastMovingTime: 0,
			canKeyboard: false,
			registerIndex: -1,
			curSpots: []
		};
		cN.platform.style.cursor = cN.config.defaultCursor;
		for(var cL = 0; cL < BMap._register.length; cL++) {
			BMap._register[cL](cN)
		}
		cN.temp.registerIndex = cL;
		cN._bind();
		cz.load("map", function() {
			cN._draw()
		});
		if(bN()) {
			cz.load("oppc", function() {
				cN._asyncRegister()
			})
		}
		if(az()) {
			cz.load("opmb", function() {
				cN._asyncRegister()
			})
		}
		cM = null
	}
	a7.lang.inherits(by, a7.lang.Class, "Map");
	a7.extend(by.prototype, {
		render: function() {
			var T = Z("div");
			var cM = T.style;
			cM.overflow = "visible";
			cM.position = "absolute";
			cM.zIndex = "0";
			cM.top = cM.left = "0px";
			var cK = Z("div", {
				"class": "BMap_mask"
			});
			var cL = cK.style;
			cL.position = "absolute";
			cL.top = cL.left = "0px";
			cL.zIndex = "9";
			cL.overflow = "hidden";
			cL.WebkitUserSelect = "none";
			T.appendChild(cK);
			return T
		},
		_setStyle: function(cK) {
			var T = cK.style;
			T.overflow = "hidden";
			if(aI(cK).position != "absolute") {
				T.position = "relative";
				T.zIndex = 0
			}
			T.backgroundColor = "#F3F1EC";
			T.color = "#000";
			T.textAlign = "left"
		},
		_bind: function() {
			var T = this;
			T._watchSize = function() {
				var cK = T.getSize();
				if(T.width != cK.width || T.height != cK.height) {
					var cM = new aG(T.width, T.height);
					var cN = new bf("onbeforeresize");
					cN.size = cM;
					T.dispatchEvent(cN);
					T._updateCenterPoint((cK.width - T.width) / 2, (cK.height - T.height) / 2);
					T.maskLayer.style.width = (T.width = cK.width) + "px";
					T.maskLayer.style.height = (T.height = cK.height) + "px";
					var cL = new bf("onresize");
					cL.size = cK;
					T.dispatchEvent(cL)
				}
			};
			if(T.config.enableAutoResize) {
				T.temp.autoResizeTimer = setInterval(T._watchSize, 80)
			}
		},
		_updateCenterPoint: function(cM, cK, cQ, cP) {
			var cN = this.getMapType().getZoomUnits(this.getZoom());
			var cR = this.projection;
			var cO = true;
			if(cQ && cc.isInRange(cQ)) {
				this.centerPoint = new cc(cQ.lng, cQ.lat);
				cO = false
			}
			var cL = (cQ && cP) ? cR.lngLatToMercator(cQ, this.currentCity) : this.mercatorCenter;
			if(cL) {
				this.mercatorCenter = new cc(cL.lng + cM * cN, cL.lat - cK * cN);
				var T = cR.mercatorToLngLat(this.mercatorCenter, this.currentCity);
				if(T && cO) {
					this.centerPoint = T
				}
			}
		},
		zoomTo: function(cM, cK) {
			if(!aJ(cM)) {
				return
			}
			cM = this._getProperZoom(cM).zoom;
			if(cM == this.zoomLevel) {
				return
			}
			this.lastLevel = this.zoomLevel;
			this.zoomLevel = cM;
			var cL;
			if(cK) {
				cL = cK
			} else {
				if(this.getInfoWindow()) {
					cL = this.getInfoWindow().getPosition()
				}
			}
			if(cL) {
				var T = this.pointToPixel(cL, this.lastLevel);
				this._updateCenterPoint(this.width / 2 - T.x, this.height / 2 - T.y, this.pixelToPoint(T, this.lastLevel), true)
			}
			this.dispatchEvent(new bf("onzoomstart"));
			this.dispatchEvent(new bf("onzoomstartcode"))
		},
		setZoom: function(T) {
			this.zoomTo(T)
		},
		zoomIn: function(T) {
			this.zoomTo(this.zoomLevel + 1, T)
		},
		zoomOut: function(T) {
			this.zoomTo(this.zoomLevel - 1, T)
		},
		panTo: function(T, cK) {
			if(!(T instanceof cc)) {
				return
			}
			this.mercatorCenter = this.projection.lngLatToMercator(T, this.currentCity);
			if(cc.isInRange(T)) {
				this.centerPoint = new cc(T.lng, T.lat)
			} else {
				this.centerPoint = this.projection.mercatorToLngLat(this.mercatorCenter, this.currentCity)
			}
		},
		panBy: function(cK, T) {
			cK = Math.round(cK) || 0;
			T = Math.round(T) || 0;
			this._updateCenterPoint(-cK, -T)
		},
		addControl: function(T) {
			if(T && H(T._i)) {
				T._i(this);
				this.dispatchEvent(new bf("onaddcontrol", T))
			}
		},
		removeControl: function(T) {
			if(T && H(T.remove)) {
				T.remove();
				this.dispatchEvent(new bf("onremovecontrol", T))
			}
		},
		addContextMenu: function(T) {
			if(T && H(T.initialize)) {
				T.initialize(this);
				this.dispatchEvent(new bf("onaddcontextmenu", T))
			}
		},
		removeContextMenu: function(T) {
			if(T && H(T.remove)) {
				this.dispatchEvent(new bf("onremovecontextmenu", T));
				T.remove()
			}
		},
		addOverlay: function(T) {
			if(T && H(T._i)) {
				T._i(this);
				this.dispatchEvent(new bf("onaddoverlay", T))
			}
		},
		removeOverlay: function(T) {
			if(T && H(T.remove)) {
				T.remove();
				this.dispatchEvent(new bf("onremoveoverlay", T))
			}
		},
		clearOverlays: function() {
			this.dispatchEvent(new bf("onclearoverlays"))
		},
		addTileLayer: function(T) {
			if(T) {
				this.dispatchEvent(new bf("onaddtilelayer", T))
			}
		},
		removeTileLayer: function(T) {
			if(T) {
				this.dispatchEvent(new bf("onremovetilelayer", T))
			}
		},
		setMapType: function(cK) {
			if(this.mapType === cK) {
				return
			}
			var cL = new bf("onsetmaptype");
			var T = this.mapType;
			cL.preMapType = T;
			this.mapType = this.config.mapType = cK;
			this.projection = this.mapType.getProjection();
			this._updateCenterPoint(0, 0, this.getCenter(), true);
			this._checkZoom();
			var cM = this._getProperZoom(this.getZoom()).zoom;
			this.zoomTo(cM);
			this.dispatchEvent(cL);
			var cL = new bf("onmaptypechange");
			cL.zoomLevel = cM;
			cL.mapType = cK;
			this.dispatchEvent(cL);
			if(cK === BMAP_SATELLITE_MAP || cK === BMAP_HYBRID_MAP) {
				_addStat(5003)
			}
		},
		setCenter: function(T) {
			var cL = this;
			if(T instanceof cc) {
				cL.panTo(T, {
					noAnimation: true
				})
			} else {
				if(b2(T)) {
					var cK = this._getLocal();
					cK.setSearchCompleteCallback(function(cM) {
						if(cK.getStatus() == 0 && cK._json.result.type == 2) {
							cL.setCenter(cM.getPoi(0).point);
							if(BMAP_PERSPECTIVE_MAP.getCityName(T)) {
								cL.setCurrentCity(T)
							}
						}
					});
					cK.search(T)
				}
			}
		},
		centerAndZoom: function(T, cL) {
			var cK = this;
			if(b2(T)) {
				var cO = cK._getLocal();
				cO.setSearchCompleteCallback(function(cP) {
					if(cO.getStatus() == 0 && cO._json.result.type == 2) {
						var cR = cP.getPoi(0).point;
						var cQ = cL || R.getBestLevel(cO._json.content.level, cK);
						cK.centerAndZoom(cR, cQ);
						if(BMAP_PERSPECTIVE_MAP.getCityName(T)) {
							cK.setCurrentCity(T)
						}
					}
				});
				cO.search(T);
				return
			}
			if(!(T instanceof cc) || !cL) {
				return
			}
			cL = cK._getProperZoom(cL).zoom;
			cK.lastLevel = cK.zoomLevel || cL;
			cK.zoomLevel = cL;
			cK.centerPoint = new cc(T.lng, T.lat);
			cK.mercatorCenter = cK.projection.lngLatToMercator(cK.centerPoint, cK.currentCity);
			cK.defaultZoomLevel = cK.defaultZoomLevel || cK.zoomLevel;
			cK.defaultCenter = cK.defaultCenter || cK.centerPoint;
			var cN = new bf("onload");
			var cM = new bf("onloadcode");
			cN.point = new cc(T.lng, T.lat);
			cN.pixel = cK.pointToPixel(cK.centerPoint, cK.zoomLevel);
			cN.zoom = cL;
			if(!cK.loaded) {
				cK.loaded = true;
				cK.dispatchEvent(cN)
			}
			cK.dispatchEvent(cM);
			cK.dispatchEvent(new bf("onmoveend"));
			if(cK.lastLevel != cK.zoomLevel) {
				cK.dispatchEvent(new bf("onzoomend"))
			}
		},
		_getLocal: function() {
			if(!this.temp.local) {
				this.temp.local = new a3(1)
			}
			return this.temp.local
		},
		reset: function() {
			this.centerAndZoom(this.defaultCenter, this.defaultZoomLevel, true)
		},
		enableDragging: function() {
			this.config.enableDragging = true
		},
		disableDragging: function() {
			this.config.enableDragging = false
		},
		enableInertialDragging: function() {
			this.config.enableInertialDragging = true
		},
		disableInertialDragging: function() {
			this.config.enableInertialDragging = false
		},
		enableScrollWheelZoom: function() {
			this.config.enableWheelZoom = true
		},
		disableScrollWheelZoom: function() {
			this.config.enableWheelZoom = false
		},
		enableContinuousZoom: function() {
			this.config.enableContinuousZoom = true
		},
		disableContinuousZoom: function() {
			this.config.enableContinuousZoom = false
		},
		enableDoubleClickZoom: function() {
			this.config.enableDblclickZoom = true
		},
		disableDoubleClickZoom: function() {
			this.config.enableDblclickZoom = false
		},
		enableKeyboard: function() {
			this.config.enableKeyboard = true
		},
		disableKeyboard: function() {
			this.config.enableKeyboard = false
		},
		enablePinchToZoom: function() {
			this.config.enablePinchToZoom = true
		},
		disablePinchToZoom: function() {
			this.config.enablePinchToZoom = false
		},
		enableAutoResize: function() {
			this.config.enableAutoResize = true;
			this._watchSize();
			if(!this.temp.autoResizeTimer) {
				this.temp.autoResizeTimer = setInterval(this._watchSize, 80)
			}
		},
		disableAutoResize: function() {
			this.config.enableAutoResize = false;
			if(this.temp.autoResizeTimer) {
				clearInterval(this.temp.autoResizeTimer);
				this.temp.autoResizeTimer = null
			}
		},
		getSize: function() {
			return new aG(this.container.clientWidth, this.container.clientHeight)
		},
		getCenter: function() {
			return this.centerPoint
		},
		getZoom: function() {
			return this.zoomLevel
		},
		checkResize: function() {
			this._watchSize()
		},
		_getProperZoom: function(cL) {
			var cK = this.config.minZoom,
				T = this.config.maxZoom,
				cM = false;
			if(cL < cK) {
				cM = true;
				cL = cK
			}
			if(cL > T) {
				cM = true;
				cL = T
			}
			return {
				zoom: cL,
				exceeded: cM
			}
		},
		getContainer: function() {
			return this.container
		},
		pointToPixel: function(T, cK) {
			cK = cK || this.getZoom();
			return this.projection.pointToPixel(T, cK, this.mercatorCenter, this.getSize(), this.currentCity)
		},
		pixelToPoint: function(T, cK) {
			cK = cK || this.getZoom();
			return this.projection.pixelToPoint(T, cK, this.mercatorCenter, this.getSize(), this.currentCity)
		},
		pointToOverlayPixel: function(T, cL) {
			if(!T) {
				return
			}
			var cM = new cc(T.lng, T.lat);
			var cK = this.pointToPixel(cM, cL);
			cK.x -= this.offsetX;
			cK.y -= this.offsetY;
			return cK
		},
		overlayPixelToPoint: function(T, cL) {
			if(!T) {
				return
			}
			var cK = new bt(T.x, T.y);
			cK.x += this.offsetX;
			cK.y += this.offsetY;
			return this.pixelToPoint(cK, cL)
		},
		getBounds: function() {
			if(!this.isLoaded()) {
				return new bM()
			}
			var cK = arguments[0] || {},
				cM = cK.margins || [0, 0, 0, 0],
				T = cK.zoom || null,
				cN = this.pixelToPoint({
					x: cM[3],
					y: this.height - cM[2]
				}, T),
				cL = this.pixelToPoint({
					x: this.width - cM[1],
					y: cM[0]
				}, T);
			return new bM(cN, cL)
		},
		isLoaded: function() {
			return !!this.loaded
		},
		_getBestLevel: function(cK, cL) {
			var cO = this.getMapType();
			var cQ = cL.margins || [10, 10, 10, 10],
				cN = cL.zoomFactor || 0,
				cR = cQ[1] + cQ[3],
				cP = cQ[0] + cQ[2],
				T = cO.getMinZoom(),
				cT = cO.getMaxZoom();
			for(var cM = cT; cM >= T; cM--) {
				var cS = this.getMapType().getZoomUnits(cM);
				if(cK.toSpan().lng / cS < this.width - cR && cK.toSpan().lat / cS < this.height - cP) {
					break
				}
			}
			cM += cN;
			if(cM < T) {
				cM = T
			}
			if(cM > cT) {
				cM = cT
			}
			return cM
		},
		getViewport: function(cS, cK) {
			var cW = {
				center: this.getCenter(),
				zoom: this.getZoom()
			};
			if(!cS || !cS instanceof bM && cS.length == 0 || cS instanceof bM && cS.isEmpty()) {
				return cW
			}
			var cU = [];
			if(cS instanceof bM) {
				cU.push(cS.getNorthEast());
				cU.push(cS.getSouthWest())
			} else {
				cU = cS.slice(0)
			}
			cK = cK || {};
			var cO = [];
			for(var cP = 0, cN = cU.length; cP < cN; cP++) {
				cO.push(this.projection.lngLatToMercator(cU[cP], this.currentCity))
			}
			var cL = new bM();
			for(var cP = cO.length - 1; cP >= 0; cP--) {
				cL.extend(cO[cP])
			}
			if(cL.isEmpty()) {
				return cW
			}
			var T = cL.getCenter();
			var cV = this._getBestLevel(cL, cK);
			if(cK.margins) {
				var cR = cK.margins,
					cQ = (cR[1] - cR[3]) / 2,
					cT = (cR[0] - cR[2]) / 2,
					cM = this.getMapType().getZoomUnits(cV);
				T.lng = T.lng + cM * cQ;
				T.lat = T.lat + cM * cT
			}
			T = this.projection.mercatorToLngLat(T, this.currentCity);
			return {
				center: T,
				zoom: cV
			}
		},
		setViewport: function(cK, cN) {
			var T;
			if(cK && cK.center) {
				T = cK
			} else {
				T = this.getViewport(cK, cN)
			}
			cN = cN || {};
			var cL = cN.delay || 200;
			if(T.zoom == this.zoomLevel && cN.enableAnimation != false) {
				var cM = this;
				setTimeout(function() {
					cM.panTo(T.center, {
						duration: 210
					})
				}, cL)
			} else {
				this.centerAndZoom(T.center, T.zoom)
			}
		},
		getPanes: function() {
			return this._panes
		},
		getInfoWindow: function() {
			if(this.temp.infoWin && this.temp.infoWin.isOpen()) {
				return this.temp.infoWin
			}
			return null
		},
		getDistance: function(cL, T) {
			if(!cL || !T) {
				return
			}
			var cK = 0;
			cK = a9.getDistanceByLL(cL, T);
			return cK
		},
		getOverlays: function() {
			var cM = [],
				cN = this._overlays,
				cL = this._customOverlays;
			if(cN) {
				for(var cK in cN) {
					if(cN[cK] instanceof X) {
						cM.push(cN[cK])
					}
				}
			}
			if(cL) {
				for(var cK = 0, T = cL.length; cK < T; cK++) {
					cM.push(cL[cK])
				}
			}
			return cM
		},
		getMapType: function() {
			return this.mapType
		},
		_asyncRegister: function() {
			for(var T = this.temp.registerIndex; T < BMap._register.length; T++) {
				BMap._register[T](this)
			}
			this.temp.registerIndex = T
		},
		setCurrentCity: function(T) {
			this.currentCity = BMAP_PERSPECTIVE_MAP.getCityName(T);
			this.cityCode = BMAP_PERSPECTIVE_MAP.getCityCode(this.currentCity)
		},
		setDefaultCursor: function(T) {
			if(a7.browser.firefox && T.indexOf("url") == 0) {
				T = T += ", -moz-grab"
			}
			this.config.defaultCursor = T;
			if(this.platform) {
				this.platform.style.cursor = this.config.defaultCursor
			}
		},
		getDefaultCursor: function() {
			return this.config.defaultCursor
		},
		setDraggingCursor: function(T) {
			if(a7.browser.firefox && T.indexOf("url") == 0) {
				T = T += ", -moz-grabbing"
			}
			this.config.draggingCursor = T
		},
		getDraggingCursor: function() {
			return this.config.draggingCursor
		},
		highResolutionEnabled: function() {
			return this.config.enableHighResolution && window.devicePixelRatio > 1
		},
		addHotspot: function(cK) {
			if(cK instanceof cl) {
				this._hotspots[cK.guid] = cK;
				cK.initialize(this)
			}
			var T = this;
			cz.load("hotspot", function() {
				T._asyncRegister()
			})
		},
		removeHotspot: function(T) {
			if(this._hotspots[T.guid]) {
				delete this._hotspots[T.guid]
			}
		},
		clearHotspots: function() {
			this._hotspots = {}
		},
		_checkZoom: function() {
			var cK = this.mapType.getMinZoom();
			var cL = this.mapType.getMaxZoom();
			var T = this.config;
			T.minZoom = T.userMinZoom || cK;
			T.maxZoom = T.userMaxZoom || cL;
			if(T.minZoom < cK) {
				T.minZoom = cK
			}
			if(T.maxZoom > cL) {
				T.maxZoom = cL
			}
		},
		setMinZoom: function(T) {
			if(T > this.config.maxZoom) {
				T = this.config.maxZoom
			}
			this.config.userMinZoom = T;
			this._updateZoom()
		},
		setMaxZoom: function(T) {
			if(T < this.config.minZoom) {
				T = this.config.minZoom
			}
			this.config.userMaxZoom = T;
			this._updateZoom()
		},
		_updateZoom: function() {
			this._checkZoom();
			var T = this.config;
			if(this.zoomLevel < T.minZoom) {
				this.setZoom(T.minZoom)
			} else {
				if(this.zoomLevel > T.maxZoom) {
					this.setZoom(T.maxZoom)
				}
			}
			var cK = new bf("onzoomspanchange");
			cK.minZoom = T.minZoom;
			cK.maxZoom = T.maxZoom;
			this.dispatchEvent(cK)
		}
	});
	window.BMAP_API_VERSION = "1.3";
	window.BMAP_COORD_LNGLAT = 0;
	window.BMAP_COORD_MERCATOR = 1;
	window.BMAP_SYS_DRAWER = 0;
	window.BMAP_SVG_DRAWER = 1;
	window.BMAP_VML_DRAWER = 2;
	window.BMAP_CANVAS_DRAWER = 3;
	window._addStat = function(cO, cN) {
		if(!cO) {
			return
		}
		cN = cN || {};
		var cM = "";
		for(var cK in cN) {
			cM = cM + "&" + cK + "=" + encodeURIComponent(cN[cK])
		}
		var cP = function(cQ) {
				if(!cQ) {
					return
				}
				_addStat._sending = true;
				setTimeout(function() {
					_addStat._img.src = cb.imgPath + "blank.gif?" + cQ.src
				}, 50)
			};
		var T = function() {
				var cQ = _addStat._reqQueue.shift();
				if(cQ) {
					cP(cQ)
				}
			};
		var cL = (Math.random() * 100000000).toFixed(0);
		if(_addStat._sending) {
			_addStat._reqQueue.push({
				src: "t=" + cL + "&code=" + cO + cM
			})
		} else {
			cP({
				src: "t=" + cL + "&code=" + cO + cM
			})
		}
		if(!_addStat._binded) {
			a7.on(_addStat._img, "load", function() {
				_addStat._sending = false;
				T()
			});
			a7.on(_addStat._img, "error", function() {
				_addStat._sending = false;
				T()
			});
			_addStat._binded = true
		}
	};
	window._addStat._reqQueue = [];
	window._addStat._img = new Image();
	_addStat(5000, {
		v: BMap.version
	});

	function g(cM) {
		var T = {
			duration: 1000,
			fps: 30,
			delay: 0,
			transition: av.linear,
			onStop: function() {}
		};
		this._anis = [];
		if(cM) {
			for(var cK in cM) {
				T[cK] = cM[cK]
			}
		}
		this._opts = T;
		if(aJ(T.delay)) {
			var cL = this;
			setTimeout(function() {
				cL.start()
			}, T.delay)
		} else {
			if(T.delay != g.INFINITE) {
				this.start()
			}
		}
	}
	g.INFINITE = "INFINITE";
	g.prototype.start = function() {
		this._beginTime = aD();
		this._endTime = this._beginTime + this._opts.duration;
		this._launch()
	};
	g.prototype.add = function(T) {
		this._anis.push(T)
	};
	g.prototype._launch = function() {
		var cL = this;
		var T = aD();
		if(T >= cL._endTime) {
			if(H(cL._opts.render)) {
				cL._opts.render(cL._opts.transition(1))
			}
			if(H(cL._opts.finish)) {
				cL._opts.finish()
			}
			if(cL._anis.length > 0) {
				var cK = cL._anis[0];
				cK._anis = [].concat(cL._anis.slice(1));
				cK.start()
			}
			return
		}
		cL.schedule = cL._opts.transition((T - cL._beginTime) / cL._opts.duration);
		if(H(cL._opts.render)) {
			cL._opts.render(cL.schedule)
		}
		if(!cL.terminative) {
			cL._timer = setTimeout(function() {
				cL._launch()
			}, 1000 / cL._opts.fps)
		}
	};
	g.prototype.stop = function(cK) {
		this.terminative = true;
		for(var T = 0; T < this._anis.length; T++) {
			this._anis[T].stop();
			this._anis[T] = null
		}
		this._anis.length = 0;
		if(this._timer) {
			clearTimeout(this._timer);
			this._timer = null
		}
		this._opts.onStop(this.schedule);
		if(cK) {
			this._endTime = this._beginTime;
			this._launch()
		}
	};
	g.prototype.cancel = function() {
		if(this._timer) {
			clearTimeout(this._timer)
		}
		this._endTime = this._beginTime;
		this.schedule = 0
	};
	g.prototype.setFinishCallback = function(T) {
		if(this._anis.length > 0) {
			this._anis[this._anis.length - 1]._opts.finish = T
		} else {
			this._opts.finish = T
		}
	};
	var av = {
		linear: function(T) {
			return T
		},
		reverse: function(T) {
			return 1 - T
		},
		easeInQuad: function(T) {
			return T * T
		},
		easeInCubic: function(T) {
			return Math.pow(T, 3)
		},
		easeOutQuad: function(T) {
			return -(T * (T - 2))
		},
		easeOutCubic: function(T) {
			return Math.pow((T - 1), 3) + 1
		},
		easeInOutQuad: function(T) {
			if(T < 0.5) {
				return T * T * 2
			} else {
				return -2 * (T - 2) * T - 1
			}
			return
		},
		easeInOutCubic: function(T) {
			if(T < 0.5) {
				return Math.pow(T, 3) * 4
			} else {
				return Math.pow(T - 1, 3) * 4 + 1
			}
		},
		easeInOutSine: function(T) {
			return(1 - Math.cos(Math.PI * T)) / 2
		}
	};
	av["ease-in"] = av.easeInQuad;
	av["ease-out"] = av.easeOutQuad;
	var l = !! (window.BMAP_PROTOCOL == "https");
	var w = l ? "https://sapi.map.baidu.com/" : "http://api.map.baidu.com/";
	var cb = {
		imgPath: w + "images/",
		cityNames: {
			"\u5317\u4eac": "bj",
			"\u4e0a\u6d77": "sh",
			"\u6df1\u5733": "sz",
			"\u5e7f\u5dde": "gz"
		},
		fontFamily: "arial,sans-serif"
	};
	if(a7.browser.firefox) {
		a7.extend(cb, {
			distCursor: "url(" + cb.imgPath + "ruler.cur),crosshair",
			defaultCursor: "-moz-grab",
			draggingCursor: "-moz-grabbing"
		});
		if(a7.platform.isWindows) {
			cb.fontFamily = "arial,simsun,sans-serif"
		}
	} else {
		if(a7.browser.chrome || a7.browser.safari) {
			a7.extend(cb, {
				distCursor: "url(" + cb.imgPath + "ruler.cur) 2 6,crosshair",
				defaultCursor: "url(" + cb.imgPath + "openhand.cur) 8 8,default",
				draggingCursor: "url(" + cb.imgPath + "closedhand.cur) 8 8,move"
			})
		} else {
			a7.extend(cb, {
				distCursor: "url(" + cb.imgPath + "ruler.cur),crosshair",
				defaultCursor: "url(" + cb.imgPath + "openhand.cur),default",
				draggingCursor: "url(" + cb.imgPath + "closedhand.cur),move"
			})
		}
	}
	function au(cL, cK, T) {
		this.id = cL;
		this.bounds = cK;
		this.content = T
	}
	var bm = {
		undo: 1,
		redo: 2,
		zoom: 4,
		drag: 8,
		move: 16,
		mousewheel: 32,
		toolbarOperation: 64,
		stdMapCtrlDrag: 128,
		dblclick: 256
	};

	function bH(cL, T) {
		var cK = cL.style;
		cK.left = T[0] + "px";
		cK.top = T[1] + "px"
	}
	function cv(T) {
		if(a7.browser.ie > 0) {
			T.unselectable = "on"
		} else {
			T.style.MozUserSelect = "none"
		}
	}
	function x(T) {
		return T && T.parentNode && T.parentNode.nodeType != 11
	}
	function ar(cK, T) {
		a7.dom.insertHTML(cK, "beforeEnd", T);
		return cK.lastChild
	}
	function bX(T) {
		var cK = {
			left: 0,
			top: 0
		};
		while(T && T.offsetParent) {
			cK.left += T.offsetLeft;
			cK.top += T.offsetTop;
			T = T.offsetParent
		}
		return cK
	}
	function aO(T) {
		var T = window.event || T;
		T.stopPropagation ? T.stopPropagation() : T.cancelBubble = true
	}
	function cB(T) {
		var T = window.event || T;
		T.preventDefault ? T.preventDefault() : T.returnValue = false;
		return false
	}
	function cn(T) {
		aO(T);
		return cB(T)
	}
	function cF() {
		var T = document.documentElement,
			cK = document.body;
		if(T && (T.scrollTop || T.scrollLeft)) {
			return [T.scrollTop, T.scrollLeft]
		} else {
			if(cK) {
				return [cK.scrollTop, cK.scrollLeft]
			} else {
				return [0, 0]
			}
		}
	}
	function cs(cK, T) {
		if(!cK || !T) {
			return
		}
		return Math.round(Math.sqrt(Math.pow(cK.x - T.x, 2) + Math.pow(cK.y - T.y, 2)))
	}
	function N(T, cL) {
		var cK = [];
		cL = cL ||
		function(cN) {
			return cN
		};
		for(var cM in T) {
			cK.push(cM + "=" + cL(T[cM]))
		}
		return cK.join("&")
	}
	function Z(cK, T, cL) {
		var cM = document.createElement(cK);
		if(cL) {
			cM = document.createElementNS(cL, cK)
		}
		return a7.dom.setAttrs(cM, T || {})
	}
	function aI(T) {
		if(T.currentStyle) {
			return T.currentStyle
		} else {
			if(T.ownerDocument && T.ownerDocument.defaultView) {
				return T.ownerDocument.defaultView.getComputedStyle(T, null)
			}
		}
	}
	function H(T) {
		return typeof T == "function"
	}
	function aJ(T) {
		return typeof T == "number"
	}
	function b2(T) {
		return typeof T == "string"
	}
	function cg(T) {
		return typeof T != "undefined"
	}
	function cI(T) {
		return typeof T == "object"
	}
	function aX(T) {
		return "[object Array]" == Object.prototype.toString.call(T)
	}
	var ce = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

	function bU(cM) {
		var cK = "";
		var cT, cR, cP = "";
		var cS, cQ, cO, cN = "";
		var cL = 0;
		var T = /[^A-Za-z0-9\+\/\=]/g;
		if(!cM || T.exec(cM)) {
			return cM
		}
		cM = cM.replace(/[^A-Za-z0-9\+\/\=]/g, "");
		do {
			cS = ce.indexOf(cM.charAt(cL++));
			cQ = ce.indexOf(cM.charAt(cL++));
			cO = ce.indexOf(cM.charAt(cL++));
			cN = ce.indexOf(cM.charAt(cL++));
			cT = (cS << 2) | (cQ >> 4);
			cR = ((cQ & 15) << 4) | (cO >> 2);
			cP = ((cO & 3) << 6) | cN;
			cK = cK + String.fromCharCode(cT);
			if(cO != 64) {
				cK = cK + String.fromCharCode(cR)
			}
			if(cN != 64) {
				cK = cK + String.fromCharCode(cP)
			}
			cT = cR = cP = "";
			cS = cQ = cO = cN = ""
		} while (cL < cM.length);
		return cK
	}
	var bf = a7.lang.Event;

	function az() {
		return !!(a7.platform.isIphone || a7.platform.isIpad || a7.platform.isAndroid)
	}
	function bN() {
		return !!(a7.platform.isWindows || a7.platform.isMacintosh || a7.platform.isX11)
	}
	function aD() {
		return(new Date).getTime()
	}
	var cw = {
		request: function(cK) {
			var T = Z("script", {
				src: cK,
				type: "text/javascript",
				charset: "utf-8"
			});
			if(T.addEventListener) {
				T.addEventListener("load", function(cM) {
					var cL = cM.target;
					cL.parentNode.removeChild(cL)
				}, false)
			} else {
				if(T.attachEvent) {
					T.attachEvent("onreadystatechange", function(cM) {
						var cL = window.event.srcElement;
						if(cL && (cL.readyState == "loaded" || cL.readyState == "complete")) {
							cL.parentNode.removeChild(cL)
						}
					})
				}
			}
			setTimeout(function() {
				document.getElementsByTagName("head")[0].appendChild(T);
				T = null
			}, 1)
		}
	};

	function cz() {}
	a7.object.extend(cz, {
		Request: {
			INITIAL: -1,
			WAITING: 0,
			COMPLETED: 1
		},
		Dependency: {
			control: [],
			marker: [],
			poly: ["marker"],
			infowindow: ["marker"],
			menu: [],
			oppc: [],
			opmb: [],
			scommon: [],
			local: ["scommon"],
			route: ["scommon"],
			othersearch: ["scommon"],
			autocomplete: ["scommon"],
			buslinesearch: ["route"],
			hotspot: []
		},
		preLoaded: {},
		Config: {
			_baseUrl: w + "getmodules?v=1.3",
			_timeout: 5000
		},
		delayFlag: false,
		Module: {
			_modules: {},
			_arrMdls: []
		},
		load: function(cK, cM) {
			var T = this.current(cK);
			if(T._status == this.Request.COMPLETED) {
				return
			} else {
				if(T._status == this.Request.INITIAL) {
					this.combine(cK);
					this.pushUniqueMdl(cK);
					var cL = this;
					if(cL.delayFlag == false) {
						cL.delayFlag = true;
						window.setTimeout(function() {
							var cN = cL.Config._baseUrl + "&mod=" + cL.Module._arrMdls.join(",");
							cw.request(cN);
							cL.Module._arrMdls.length = 0;
							cL.delayFlag = false
						}, 1)
					}
					T._status = this.Request.WAITING
				}
				T._callbacks.push(cM)
			}
		},
		combine: function(T) {
			if(T && this.Dependency[T]) {
				var cL = this.Dependency[T];
				for(var cK = 0; cK < cL.length; cK++) {
					this.combine(cL[cK]);
					if(!this.Module._modules[cL[cK]]) {
						this.pushUniqueMdl(cL[cK])
					}
				}
			}
		},
		pushUniqueMdl: function(cK) {
			for(var T = 0; T < this.Module._arrMdls.length; T++) {
				if(this.Module._arrMdls[T] == cK) {
					return
				}
			}
			this.Module._arrMdls.push(cK)
		},
		run: function(cL, cN) {
			var cK = this.current(cL);
			try {
				eval(cN)
			} catch(cO) {
				return
			}
			cK._status = this.Request.COMPLETED;
			for(var cM = 0, T = cK._callbacks.length; cM < T; cM++) {
				cK._callbacks[cM]()
			}
			cK._callbacks.length = 0
		},
		check: function(cK, cL) {
			var T = this;
			T.timeout = setTimeout(function() {
				var cM = T.Module._modules[cK]._status;
				if(cM != T.Request.COMPLETED) {
					T.remove(cK);
					T.load(cK, cL)
				} else {
					clearTimeout(T.timeout)
				}
			}, T.Config._timeout)
		},
		current: function(cK) {
			var T;
			if(!this.Module._modules[cK]) {
				this.Module._modules[cK] = {};
				this.Module._modules[cK]._status = this.Request.INITIAL;
				this.Module._modules[cK]._callbacks = []
			}
			T = this.Module._modules[cK];
			return T
		},
		remove: function(cK) {
			var T = this.current(cK);
			delete T
		}
	});
	window._jsload = function(T, cK) {
		cz.run(T, cK)
	};

	function bt(T, cK) {
		this.x = T || 0;
		this.y = cK || 0
	}
	bt.prototype.equals = function(T) {
		return T && T.x == this.x && T.y == this.y
	};

	function aG(cK, T) {
		this.width = cK || 0;
		this.height = T || 0
	}
	aG.prototype.equals = function(T) {
		return T && this.width == T.width && this.height == T.height
	};

	function cl(T, cK) {
		if(!T) {
			return
		}
		this._position = T;
		this.guid = "spot" + (cl.guid++);
		cK = cK || {};
		this._text = cK.text || "";
		this._offsets = cK.offsets ? cK.offsets.slice(0) : [5, 5, 5, 5];
		this._userData = cK.userData || null;
		this._minZoom = cK.minZoom || null;
		this._maxZoom = cK.maxZoom || null
	}
	cl.guid = 0;
	a7.extend(cl.prototype, {
		initialize: function(T) {
			if(this._minZoom == null) {
				this._minZoom = T.config.minZoom
			}
			if(this._maxZoom == null) {
				this._maxZoom = T.config.maxZoom
			}
		},
		setPosition: function(T) {
			if(T instanceof cc) {
				this._position = T
			}
		},
		getPosition: function() {
			return this._position
		},
		setText: function(T) {
			this._text = T
		},
		getText: function() {
			return this._text
		},
		setUserData: function(T) {
			this._userData = T
		},
		getUserData: function() {
			return this._userData
		}
	});

	function co() {
		this._map = null;
		this._container;
		this._type = "control";
		this.blockInfoWindow = true;
		this._visible = true
	}
	a7.lang.inherits(co, a7.lang.Class, "Control");
	a7.extend(co.prototype, {
		initialize: function(T) {
			this._map = T;
			if(this._container) {
				T.container.appendChild(this._container);
				return this._container
			}
			return
		},
		_i: function(T) {
			if(!this._container && this.initialize && H(this.initialize)) {
				this._container = this.initialize(T)
			}
			this._opts = this._opts || {
				printable: false
			};
			this._setStyle();
			this._setPosition();
			if(this._container) {
				this._container._jsobj = this
			}
		},
		_setStyle: function() {
			var cK = this._container;
			if(cK) {
				var T = cK.style;
				T.position = "absolute";
				T.zIndex = this._cZIndex || "10";
				T.MozUserSelect = "none";
				T.WebkitTextSizeAdjust = "none";
				if(!this._opts.printable) {
					a7.dom.addClass(cK, "BMap_noprint")
				}
				a7.on(cK, "contextmenu", cn)
			}
		},
		remove: function() {
			this._map = null;
			if(!this._container) {
				return
			}
			this._container.parentNode && this._container.parentNode.removeChild(this._container);
			this._container._jsobj = null;
			this._container = null
		},
		_render: function() {
			this._container = ar(this._map.container, "<div unselectable='on'></div>");
			if(this._visible == false) {
				a7.dom.hide(this._container)
			}
			return this._container
		},
		_setPosition: function() {
			this.setAnchor(this._opts.anchor)
		},
		setAnchor: function(cM) {
			if(this.anchorFixed || !aJ(cM) || isNaN(cM) || cM < BMAP_ANCHOR_TOP_LEFT || cM > BMAP_ANCHOR_BOTTOM_RIGHT) {
				cM = this.defaultAnchor
			}
			this._opts = this._opts || {
				printable: false
			};
			this._opts.offset = this._opts.offset || this.defaultOffset;
			var cL = this._opts.anchor;
			this._opts.anchor = cM;
			if(!this._container) {
				return
			}
			var cO = this._container;
			var T = this._opts.offset.width;
			var cN = this._opts.offset.height;
			cO.style.left = cO.style.top = cO.style.right = cO.style.bottom = "auto";
			switch(cM) {
			case BMAP_ANCHOR_TOP_LEFT:
				cO.style.top = cN + "px";
				cO.style.left = T + "px";
				break;
			case BMAP_ANCHOR_TOP_RIGHT:
				cO.style.top = cN + "px";
				cO.style.right = T + "px";
				break;
			case BMAP_ANCHOR_BOTTOM_LEFT:
				cO.style.bottom = cN + "px";
				cO.style.left = T + "px";
				break;
			case BMAP_ANCHOR_BOTTOM_RIGHT:
				cO.style.bottom = cN + "px";
				cO.style.right = T + "px";
				break;
			default:
				break
			}
			var cK = ["TL", "TR", "BL", "BR"];
			a7.dom.removeClass(this._container, "anchor" + cK[cL]);
			a7.dom.addClass(this._container, "anchor" + cK[cM])
		},
		getAnchor: function() {
			return this._opts.anchor
		},
		setOffset: function(T) {
			if(!(T instanceof aG)) {
				return
			}
			this._opts = this._opts || {
				printable: false
			};
			this._opts.offset = new aG(T.width, T.height);
			if(!this._container) {
				return
			}
			this.setAnchor(this._opts.anchor)
		},
		getOffset: function() {
			return this._opts.offset
		},
		getDom: function() {
			return this._container
		},
		show: function() {
			if(this._visible == true) {
				return
			}
			this._visible = true;
			if(this._container) {
				a7.dom.show(this._container)
			}
		},
		hide: function() {
			if(this._visible == false) {
				return
			}
			this._visible = false;
			if(this._container) {
				a7.dom.hide(this._container)
			}
		},
		isPrintable: function() {
			return !!this._opts.printable
		},
		isVisible: function() {
			if(!this._container && !this._map) {
				return false
			}
			return !!this._visible
		}
	});
	window.BMAP_ANCHOR_TOP_LEFT = 0;
	window.BMAP_ANCHOR_TOP_RIGHT = 1;
	window.BMAP_ANCHOR_BOTTOM_LEFT = 2;
	window.BMAP_ANCHOR_BOTTOM_RIGHT = 3;
	window.BMAP_NAVIGATION_CONTROL_LARGE = 0;
	window.BMAP_NAVIGATION_CONTROL_SMALL = 1;
	window.BMAP_NAVIGATION_CONTROL_PAN = 2;
	window.BMAP_NAVIGATION_CONTROL_ZOOM = 3;

	function K(T) {
		co.call(this);
		T = T || {};
		this._opts = {
			printable: false,
			showZoomInfo: true
		};
		a7.object.extend(this._opts, T);
		this.defaultAnchor = BMAP_ANCHOR_TOP_LEFT;
		this.defaultOffset = new aG(10, 10);
		this.setAnchor(T.anchor);
		this.setType(T.type);
		this._asyncLoadCode()
	}
	a7.lang.inherits(K, co, "NavigationControl");
	a7.extend(K.prototype, {
		initialize: function(T) {
			this._map = T;
			return this._container
		},
		setType: function(T) {
			if(aJ(T) && T >= BMAP_NAVIGATION_CONTROL_LARGE && T <= BMAP_NAVIGATION_CONTROL_ZOOM) {
				this._opts.type = T
			} else {
				this._opts.type = BMAP_NAVIGATION_CONTROL_LARGE
			}
		},
		getType: function() {
			return this._opts.type
		},
		_asyncLoadCode: function() {
			var T = this;
			cz.load("control", function() {
				T._asyncDraw()
			})
		}
	});

	function al(T) {
		co.call(this);
		T = T || {};
		this._opts = {
			printable: false
		};
		a7.object.extend(this._opts, T);
		this._copyrightCollection = [];
		this.defaultAnchor = BMAP_ANCHOR_BOTTOM_LEFT;
		this.defaultOffset = new aG(5, 2);
		this.setAnchor(T.anchor);
		this._canShow = true;
		this.blockInfoWindow = false;
		this._asyncLoadCode()
	}
	a7.lang.inherits(al, co, "CopyrightControl");
	a7.object.extend(al.prototype, {
		initialize: function(T) {
			this._map = T;
			return this._container
		},
		addCopyright: function(cL) {
			if(!cL || !aJ(cL.id) || isNaN(cL.id)) {
				return
			}
			var T = {
				bounds: null,
				content: ""
			};
			for(var cK in cL) {
				T[cK] = cL[cK]
			}
			var cM = this.getCopyright(cL.id);
			if(cM) {
				for(var cN in T) {
					cM[cN] = T[cN]
				}
			} else {
				this._copyrightCollection.push(T)
			}
		},
		getCopyright: function(cL) {
			for(var cK = 0, T = this._copyrightCollection.length; cK < T; cK++) {
				if(this._copyrightCollection[cK].id == cL) {
					return this._copyrightCollection[cK]
				}
			}
		},
		getCopyrightCollection: function() {
			return this._copyrightCollection
		},
		removeCopyright: function(cL) {
			for(var cK = 0, T = this._copyrightCollection.length; cK < T; cK++) {
				if(this._copyrightCollection[cK].id == cL) {
					r = this._copyrightCollection.splice(cK, 1);
					cK--;
					T = this._copyrightCollection.length
				}
			}
		},
		_asyncLoadCode: function() {
			var T = this;
			cz.load("control", function() {
				T._asyncDraw()
			})
		}
	});

	function cJ(T) {
		co.call(this);
		T = T || {};
		this._opts = {
			printable: false
		};
		this._opts = a7.extend(a7.extend(this._opts, {
			size: new aG(150, 150),
			padding: 5,
			isOpen: false,
			zoomInterval: 4
		}), T);
		this.defaultAnchor = BMAP_ANCHOR_BOTTOM_RIGHT;
		this.defaultOffset = new aG(0, 0);
		this._btnWidth = 13;
		this._btnHeight = 13;
		this.setAnchor(T.anchor);
		this.setSize(this._opts.size);
		this._asyncLoadCode()
	}
	a7.lang.inherits(cJ, co, "OverviewMapControl");
	a7.extend(cJ.prototype, {
		initialize: function(T) {
			this._map = T;
			return this._container
		},
		setAnchor: function(T) {
			co.prototype.setAnchor.call(this, T)
		},
		changeView: function() {
			this.changeView._running = true;
			this._opts.isOpen = !this._opts.isOpen;
			if(!this._container) {
				this.changeView._running = false
			}
		},
		setSize: function(T) {
			if(!(T instanceof aG)) {
				T = new aG(150, 150)
			}
			T.width = T.width > 0 ? T.width : 150;
			T.height = T.height > 0 ? T.height : 150;
			this._opts.size = T
		},
		getSize: function() {
			return this._opts.size
		},
		isOpen: function() {
			return this._opts.isOpen
		},
		_asyncLoadCode: function() {
			var T = this;
			cz.load("control", function() {
				T._asyncDraw()
			})
		}
	});

	function bJ(T) {
		co.call(this);
		T = T || {};
		this._opts = {
			printable: false
		};
		this._opts = a7.object.extend(a7.object.extend(this._opts, {
			color: "black",
			unit: "metric"
		}), T);
		this.defaultAnchor = BMAP_ANCHOR_BOTTOM_LEFT;
		this.defaultOffset = new aG(81, 18);
		this.setAnchor(T.anchor);
		this._units = {
			metric: {
				name: "metric",
				conv: 1,
				incon: 1000,
				u1: "\u7c73",
				u2: "\u516c\u91cc"
			},
			us: {
				name: "us",
				conv: 3.2808,
				incon: 5280,
				u1: "\u82f1\u5c3a",
				u2: "\u82f1\u91cc"
			}
		};
		if(!this._units[this._opts.unit]) {
			this._opts.unit = "metric"
		}
		this._scaleText = null;
		this._numberArray = {};
		this._asyncLoadCode()
	}
	window.BMAP_UNIT_METRIC = "metric";
	window.BMAP_UNIT_IMPERIAL = "us";
	a7.lang.inherits(bJ, co, "ScaleControl");
	a7.object.extend(bJ.prototype, {
		initialize: function(T) {
			this._map = T;
			return this._container
		},
		setColor: function(T) {
			this._opts.color = T + ""
		},
		getColor: function() {
			return this._opts.color
		},
		setUnit: function(T) {
			this._opts.unit = this._units[T] && this._units[T].name || this._opts.unit
		},
		getUnit: function() {
			return this._opts.unit
		},
		_asyncLoadCode: function() {
			var T = this;
			cz.load("control", function() {
				T._asyncDraw()
			})
		}
	});
	window.BMAP_MAPTYPE_CONTROL_HORIZONTAL = 0;
	window.BMAP_MAPTYPE_CONTROL_DROPDOWN = 1;

	function aK(T) {
		co.call(this);
		T = T || {};
		this._opts = {
			printable: false,
			mapTypes: [BMAP_NORMAL_MAP, BMAP_SATELLITE_MAP, BMAP_HYBRID_MAP, BMAP_PERSPECTIVE_MAP],
			type: BMAP_MAPTYPE_CONTROL_HORIZONTAL
		};
		this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT;
		this.defaultOffset = new aG(10, 10);
		this.setAnchor(T.anchor);
		this._opts = a7.extend(a7.extend(this._opts, {
			offset: this.defaultOffset,
			enableSwitch: true
		}), T);
		if(aX(T.mapTypes)) {
			this._opts.mapTypes = T.mapTypes.slice(0)
		}
		this._asyncLoadCode()
	}
	a7.lang.inherits(aK, co, "MapTypeControl");
	a7.object.extend(aK.prototype, {
		initialize: function(T) {
			this._map = T;
			return this._container
		},
		_asyncLoadCode: function() {
			var T = this;
			cz.load("control", function() {
				T._asyncDraw()
			})
		}
	});

	function cy(cK) {
		a7.lang.Class.call(this);
		this._opts = {
			container: null,
			cursor: "default"
		};
		this._opts = a7.extend(this._opts, cK);
		this._type = "contextmenu";
		this._map = null;
		this._container;
		this._shadow;
		this._left = 0;
		this._top = 0;
		this._items = [];
		this._rItems = [];
		this._dividers = [];
		this.curPixel = null;
		this.curPoint = null;
		this._isOpen = false;
		var T = this;
		cz.load("menu", function() {
			T._draw()
		})
	}
	a7.lang.inherits(cy, a7.lang.Class, "ContextMenu");
	a7.object.extend(cy.prototype, {
		initialize: function(cK, T) {
			this._map = cK;
			this._overlay = T || null
		},
		remove: function() {
			this._map = this._overlay = null
		},
		addItem: function(cL) {
			if(!cL || cL._type != "menuitem" || cL._text == "" || cL._width <= 0) {
				return
			}
			for(var cK = 0, T = this._items.length; cK < T; cK++) {
				if(this._items[cK] === cL) {
					return
				}
			}
			this._items.push(cL);
			this._rItems.push(cL)
		},
		removeItem: function(cL) {
			if(!cL || cL._type != "menuitem") {
				return
			}
			for(var cK = 0, T = this._items.length; cK < T; cK++) {
				if(this._items[cK] === cL) {
					this._items[cK].remove();
					this._items.splice(cK, 1);
					T--
				}
			}
			for(var cK = 0, T = this._rItems.length; cK < T; cK++) {
				if(this._rItems[cK] === cL) {
					this._rItems[cK].remove();
					this._rItems.splice(cK, 1);
					T--
				}
			}
		},
		addSeparator: function() {
			this._items.push({
				_type: "divider",
				_dIndex: this._dividers.length
			});
			this._dividers.push({
				dom: null
			})
		},
		removeSeparator: function(cK) {
			if(!this._dividers[cK]) {
				return
			}
			for(var cL = 0, T = this._items.length; cL < T; cL++) {
				if(this._items[cL] && this._items[cL]._type == "divider" && this._items[cL]._dIndex == cK) {
					this._items.splice(cL, 1);
					T--
				}
				if(this._items[cL] && this._items[cL]._type == "divider" && this._items[cL]._dIndex > cK) {
					this._items[cL]._dIndex--
				}
			}
			this._dividers.splice(cK, 1)
		},
		getDom: function() {
			return this._container
		},
		show: function() {
			if(this._isOpen == true) {
				return
			}
			this._isOpen = true
		},
		hide: function() {
			if(this._isOpen == false) {
				return
			}
			this._isOpen = false
		},
		setCursor: function(T) {
			if(!T) {
				return
			}
			this._opts.cursor = T
		},
		getItem: function(T) {
			return this._rItems[T]
		}
	});

	function bd(cL, cM, cK) {
		if(!cL || !H(cM)) {
			return
		}
		a7.lang.Class.call(this);
		this._opts = {
			width: 100,
			id: ""
		};
		cK = cK || {};
		this._opts.width = (cK.width * 1) ? cK.width : 100;
		this._opts.id = cK.id ? cK.id : "";
		this._text = cL + "";
		this._callback = cM;
		this._map = null;
		this._type = "menuitem";
		this._contextmenu = null;
		this._container = null;
		this._enabled = true;
		var T = this;
		cz.load("menu", function() {
			T._draw()
		})
	}
	a7.lang.inherits(bd, a7.lang.Class, "MenuItem");
	a7.object.extend(bd.prototype, {
		initialize: function(T, cK) {
			this._map = T;
			this._contextmenu = cK
		},
		remove: function() {
			this._contextmenu = null;
			this._map = null
		},
		setText: function(T) {
			if(!T) {
				return
			}
			this._text = T + ""
		},
		getDom: function() {
			return this._container
		},
		enable: function() {
			this._enabled = true
		},
		disable: function() {
			this._enabled = false
		}
	});

	function bM(T, cK) {
		if(T && !cK) {
			cK = T
		}
		this._sw = this._ne = null;
		this._swLng = this._swLat = null;
		this._neLng = this._neLat = null;
		if(T) {
			this._sw = new cc(T.lng, T.lat);
			this._ne = new cc(cK.lng, cK.lat);
			this._swLng = T.lng;
			this._swLat = T.lat;
			this._neLng = cK.lng;
			this._neLat = cK.lat
		}
	}
	a7.object.extend(bM.prototype, {
		isEmpty: function() {
			return !this._sw || !this._ne
		},
		equals: function(T) {
			if(!(T instanceof bM) || this.isEmpty()) {
				return false
			}
			return this.getSouthWest().equals(T.getSouthWest()) && this.getNorthEast().equals(T.getNorthEast())
		},
		getSouthWest: function() {
			return this._sw
		},
		getNorthEast: function() {
			return this._ne
		},
		conta